MySQL基础架构
连接器
负责与客户端建立连接。
shou processlist (查看连接)
长连接内存占用过大OOM如何解决:
- 定期断开长连接
- MySQL5.7以及以上版本,可以在执行完比较大的操作后,通过mysql_reset_connection重新初始化连接资源,使连接恢复到刚刚创建完时的状态。
查询缓存
建立连接后会优先查询缓存,查询缓存弊大于利,MySQL8.0将查询缓存删除。
- 对于一张经常变更的表,缓存经常被清空,缓存的命中率非常低,对于静态表适合做查询缓存。
- 按需使用查询缓存。
分析器(分析要做什么)
如何没有命中查询缓存,就要开始执行SQl语句了。
- 词法分析:识别关键词,如select, from ,table….
- 语法分析:根据语法规则判断SQL语句的正确性。